package com.wicket.okrbff.biz.service.dto.common;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;
import java.util.Objects;

/**
 * @desc BffAchievementDockingDto
 * @使用场景
 */
@Data
public class BffAchievementDockingDto implements Serializable {

  /**
   * 关联成果ID
   */
  @ApiModelProperty("关联成果ID")
  private String achievementId;

  /**
   * 成果名称
   */
  @ApiModelProperty("成果名称")
  private String achievementName;

  /**
   * 成果类别名称
   */
  @ApiModelProperty("成果类别名称")
  private String achievementCategoryName;

  /**
   * 成果等级名称
   */
  @ApiModelProperty("成果等级名称")
  private String achievementGradeName;

  /**
   * 版权归属别名
   */
  @ApiModelProperty("版权归属别名")
  private String belongName;

  /**
   * 版权归属对象名称
   */
  @ApiModelProperty("版权归属对象名称")
  private String copyrightObjectName;

  /**
   * 授予时间
   */
  @ApiModelProperty("授予时间")
  private Date awardedTime;

  /**
   * 有效期结束时间
   */
  @ApiModelProperty("有效期结束时间")
  private Date validEndTime;

  /**
   * 是否标志性成果 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否标志性成果")
  private String isSymbolicAchievements;
/**
     * 成果类型ID
     */
    @ApiModelProperty("成果类型ID")
    private String	 achievementTypeId;

    /**
     * 成果类型编号
     */
    @ApiModelProperty("成果类型编号")
    private String	 achievementTypeNumber;

    /**
     * 成果类别ID
     */
    @ApiModelProperty("成果类别ID")
    private String	 achievementCategoryId;

    /**
     * 成果类别编号
     */
    @ApiModelProperty("成果类别编号")
    private String	 achievementCategoryNumber;

    /**
     * 成果等级ID
     */
    @ApiModelProperty("成果等级ID")
    private String	 achievementGradeId;

    /**
     * 成果等级编号
     */
    @ApiModelProperty("成果等级编号")
    private String	 achievementGradeNumber;
/**
     * 对接成果关系ID 
     */
    @ApiModelProperty("对接成果关系ID")
    private String	 achievementDockingId;
/**
     * 成果业务等级ID 
     */
    @ApiModelProperty("成果业务等级ID")
    private String	 achievementBusinessGradeId;

    /**
     * 成果业务等级编号 
     */
    @ApiModelProperty("成果业务等级编号")
    private String	 achievementBusinessGradeNumber;

    /**
     * 成果业务等级名称 
     */
    @ApiModelProperty("成果业务等级名称")
    private String	 achievementBusinessGradeName;
/**
     * 成果类型名称
     */
    @ApiModelProperty("成果类型名称")
    private String	 achievementTypeName;
/**
     * 业绩责任部门名称
     */
    @ApiModelProperty("业绩责任部门名称")
    private String	 dutyDeptName;
/**
     * 任务名称 
     */
    @ApiModelProperty("任务名称")
    private String	 taskName;

    /**
     * 归属目标内容ID 
     */
    @ApiModelProperty("归属目标内容ID")
    private String	 targetCycleContentId;
/**
     * 成果编号 
     */
    @ApiModelProperty("成果编号")
    private String	 achievementNumber;

    /**
     * 授予单位 
     */
    @ApiModelProperty("授予单位")
    private String	 awardedUnit;

    /**
     * 相关文号 
     */
    @ApiModelProperty("相关文号")
    private String	 relatedDocument;

    /**
     * 业绩责任部门ID 
     */
    @ApiModelProperty("业绩责任部门ID")
    private String	 dutyDeptId;

    /**
     * 部门简称 
     */
    @ApiModelProperty("部门简称")
    private String	 deptShortName;
/**
     * 是否标志性成果 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否标志性成果")
    private String	 isSymbolicAchievement;

    /**
     * 版权归属对象表类型 ORGANIZATION:组织 DEPARTMENT:部门 PERSONAL:个人
     */
    @ApiModelProperty("版权归属对象表类型")
    private String	 copyrightObjectTypeCode;

    /**
     * 版权归属对象ID 
     */
    @ApiModelProperty("版权归属对象ID")
    private String	 copyrightObjectId;
/**
     * 成果介绍 
     */
    @ApiModelProperty("成果介绍")
    private String	 achievementDesc;
@Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      BffAchievementDockingDto that = (BffAchievementDockingDto) o;
      return  achievementId == that.achievementId&&achievementName == that.achievementName&&achievementCategoryName == that.achievementCategoryName&&achievementGradeName == that.achievementGradeName&&belongName == that.belongName&&copyrightObjectName == that.copyrightObjectName&&awardedTime == that.awardedTime&&validEndTime == that.validEndTime&&isSymbolicAchievements == that.isSymbolicAchievements&&achievementTypeId == that.achievementTypeId&&achievementTypeNumber == that.achievementTypeNumber&&achievementCategoryId == that.achievementCategoryId&&achievementCategoryNumber == that.achievementCategoryNumber&&achievementGradeId == that.achievementGradeId&&achievementGradeNumber == that.achievementGradeNumber&&achievementDockingId == that.achievementDockingId&&achievementBusinessGradeId == that.achievementBusinessGradeId&&achievementBusinessGradeNumber == that.achievementBusinessGradeNumber&&achievementBusinessGradeName == that.achievementBusinessGradeName&&achievementTypeName == that.achievementTypeName&&dutyDeptName == that.dutyDeptName&&taskName == that.taskName&&targetCycleContentId == that.targetCycleContentId&&achievementNumber == that.achievementNumber&&awardedUnit == that.awardedUnit&&relatedDocument == that.relatedDocument&&dutyDeptId == that.dutyDeptId&&deptShortName == that.deptShortName&&isSymbolicAchievement == that.isSymbolicAchievement&&copyrightObjectTypeCode == that.copyrightObjectTypeCode&&copyrightObjectId == that.copyrightObjectId&&achievementDesc == that.achievementDesc;
    }
@Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), achievementId,achievementName,achievementCategoryName,achievementGradeName,belongName,copyrightObjectName,awardedTime,validEndTime,isSymbolicAchievements,achievementTypeId,achievementTypeNumber,achievementCategoryId,achievementCategoryNumber,achievementGradeId,achievementGradeNumber,achievementDockingId,achievementBusinessGradeId,achievementBusinessGradeNumber,achievementBusinessGradeName,achievementTypeName,dutyDeptName,taskName,targetCycleContentId,achievementNumber,awardedUnit,relatedDocument,dutyDeptId,deptShortName,isSymbolicAchievement,copyrightObjectTypeCode,copyrightObjectId,achievementDesc);
    }

}
